﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DAL.Entity;

namespace DAL.Persistencia
{
    public class ServicoTipoDAL
    {

        private NewTierraEntities Con;

        public ServicoTipoDAL()
        {
            Con = new NewTierraEntities();
        }

        public void Salvar(S_Servicos_Tipo s)
        {
            try
            {
                Con.AddToS_Servicos_Tipo(s);
                Con.SaveChanges();
            }
            catch 
            {                
                throw;
            }
        }

        public S_Servicos_Tipo ObterPorId(int IdTipoServ)
        {
            try
            {
                return Con.S_Servicos_Tipo.Where(s => s.Tipo_Id == IdTipoServ).SingleOrDefault();
            }
            catch 
            {                
                throw;
            }
        }

        public List<S_Servicos_Tipo> ListarTodos()
        {
            try
            {
                return Con.S_Servicos_Tipo.OrderBy(s => s.Tipo_Nome).ToList();
            }
            catch 
            {                
                throw;
            }
        }

        public List<S_Servicos_Tipo> ListarTodos(string nome)
        {
            try
            {
                return Con.S_Servicos_Tipo.Where(s => s.Tipo_Nome.Contains(nome)).OrderBy(s => s.Tipo_Nome).ToList();
            }
            catch
            {
                throw;
            }
        }

        public void Atualizar(S_Servicos_Tipo novo)
        {
            try
            {

                S_Servicos_Tipo antigo = ObterPorId(novo.Tipo_Id);

                antigo.Tipo_Nome = novo.Tipo_Nome;

                Con.SaveChanges();

            }
            catch 
            {                
                throw;
            }
        }

        public void Excluir(S_Servicos_Tipo s)
        {
            try
            {
                Con.DeleteObject(s);
                Con.SaveChanges();
            }
            catch 
            {                
                throw;
            }
        }

        public bool VerificaNome(string Nome)
        {
            try
            {
                return Con.S_Servicos_Tipo.Where(s => s.Tipo_Nome.Equals(Nome)).Count() != 0;
            }
            catch 
            {                
                throw;
            }
        }

    }
}
